package logica;

import java.io.Serializable;

import javax.persistence.*;

import java.util.Calendar;


/**
 * The persistent class for the PASAJERO database table.
 * 
 */
@Entity
@Table(name="PASAJERO")
@NamedQuery(name="Pasajero.findAll", query="SELECT p FROM Pasajero p")
public class Pasajero implements Serializable {
	private static final long serialVersionUID = 1L;
	private int idPasajero;
	private String apellido;
	private String calle;
	private String codigopostal;
	private String cuit;
	private String departamento;
	private String email;
	private Calendar fechanacimiento;
	private String nacionalidad;
	private String nombre;
	private String nrodoc;
	private String numcalle;
	private String ocupacion;
	private String piso;
	private String telefono;
	private Localidad localidad;
	private Situacioniva situacioniva;
	private Tipodoc tipodoc;

	public Pasajero() {
	}


	@Id
	@SequenceGenerator(name="PASAJERO_IDPASAJERO_GENERATOR", sequenceName="SECUENCIA")
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="PASAJERO_IDPASAJERO_GENERATOR")
	@Column(name="ID_PASAJERO", unique=true, nullable=false, precision=38)
	public int getIdPasajero() {
		return this.idPasajero;
	}

	public void setIdPasajero(int idPasajero) {
		this.idPasajero = idPasajero;
	}


	@Column(nullable=false, length=50)
	public String getApellido() {
		return this.apellido;
	}

	public void setApellido(String apellido) {
		this.apellido = apellido;
	}


	@Column(length=50)
	public String getCalle() {
		return this.calle;
	}

	public void setCalle(String calle) {
		this.calle = calle;
	}


	@Column(nullable=false, length=10)
	public String getCodigopostal() {
		return this.codigopostal;
	}

	public void setCodigopostal(String codigopostal) {
		this.codigopostal = codigopostal;
	}


	@Column(length=11)
	public String getCuit() {
		return this.cuit;
	}

	public void setCuit(String cuit) {
		this.cuit = cuit;
	}


	@Column(length=5)
	public String getDepartamento() {
		return this.departamento;
	}

	public void setDepartamento(String departamento) {
		this.departamento = departamento;
	}


	@Column(length=50)
	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}


	@Temporal(TemporalType.DATE)
	@Column(nullable=false)
	public Calendar getFechanacimiento() {
		return this.fechanacimiento;
	}

	public void setFechanacimiento(Calendar fechanacimiento) {
		this.fechanacimiento = fechanacimiento;
	}


	@Column(nullable=false, length=50)
	public String getNacionalidad() {
		return this.nacionalidad;
	}

	public void setNacionalidad(String nacionalidad) {
		this.nacionalidad = nacionalidad;
	}


	@Column(nullable=false, length=50)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}


	@Column(nullable=false, length=8)
	public String getNrodoc() {
		return this.nrodoc;
	}

	public void setNrodoc(String nrodoc) {
		this.nrodoc = nrodoc;
	}


	@Column(length=5)
	public String getNumcalle() {
		return this.numcalle;
	}

	public void setNumcalle(String numcalle) {
		this.numcalle = numcalle;
	}


	@Column(length=50)
	public String getOcupacion() {
		return this.ocupacion;
	}

	public void setOcupacion(String ocupacion) {
		this.ocupacion = ocupacion;
	}


	@Column(length=2)
	public String getPiso() {
		return this.piso;
	}

	public void setPiso(String piso) {
		this.piso = piso;
	}


	@Column(length=14)
	public String getTelefono() {
		return this.telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}


	//uni-directional many-to-one association to Localidad
	@ManyToOne
	@JoinColumn(name="ID_LOCALIDAD", nullable=false)
	public Localidad getLocalidad() {
		return this.localidad;
	}

	public void setLocalidad(Localidad localidad) {
		this.localidad = localidad;
	}


	//uni-directional many-to-one association to Situacioniva
	@ManyToOne
	@JoinColumn(name="ID_SITUACIONIVA", nullable=false)
	public Situacioniva getSituacioniva() {
		return this.situacioniva;
	}

	public void setSituacioniva(Situacioniva situacioniva) {
		this.situacioniva = situacioniva;
	}


	//uni-directional many-to-one association to Tipodoc
	@ManyToOne
	@JoinColumn(name="ID_TIPODOC", nullable=false)
	public Tipodoc getTipodoc() {
		return this.tipodoc;
	}

	public void setTipodoc(Tipodoc tipodoc) {
		this.tipodoc = tipodoc;
	}


	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((apellido == null) ? 0 : apellido.hashCode());
		result = prime * result + ((calle == null) ? 0 : calle.hashCode());
		result = prime * result
				+ ((codigopostal == null) ? 0 : codigopostal.hashCode());
		result = prime * result + ((cuit == null) ? 0 : cuit.hashCode());
		result = prime * result
				+ ((departamento == null) ? 0 : departamento.hashCode());
		result = prime * result + ((email == null) ? 0 : email.hashCode());
		result = prime * result
				+ ((fechanacimiento == null) ? 0 : fechanacimiento.hashCode());
		result = prime * result + idPasajero;
		result = prime * result
				+ ((localidad == null) ? 0 : localidad.hashCode());
		result = prime * result
				+ ((nacionalidad == null) ? 0 : nacionalidad.hashCode());
		result = prime * result + ((nombre == null) ? 0 : nombre.hashCode());
		result = prime * result + ((nrodoc == null) ? 0 : nrodoc.hashCode());
		result = prime * result
				+ ((numcalle == null) ? 0 : numcalle.hashCode());
		result = prime * result
				+ ((ocupacion == null) ? 0 : ocupacion.hashCode());
		result = prime * result + ((piso == null) ? 0 : piso.hashCode());
		result = prime * result
				+ ((situacioniva == null) ? 0 : situacioniva.hashCode());
		result = prime * result
				+ ((telefono == null) ? 0 : telefono.hashCode());
		result = prime * result + ((tipodoc == null) ? 0 : tipodoc.hashCode());
		return result;
	}


	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Pasajero other = (Pasajero) obj;
		if (apellido == null) {
			if (other.apellido != null)
				return false;
		} else if (!apellido.equals(other.apellido))
			return false;
		if (calle == null) {
			if (other.calle != null)
				return false;
		} else if (!calle.equals(other.calle))
			return false;
		if (codigopostal == null) {
			if (other.codigopostal != null)
				return false;
		} else if (!codigopostal.equals(other.codigopostal))
			return false;
		if (cuit == null) {
			if (other.cuit != null)
				return false;
		} else if (!cuit.equals(other.cuit))
			return false;
		if (departamento == null) {
			if (other.departamento != null)
				return false;
		} else if (!departamento.equals(other.departamento))
			return false;
		if (email == null) {
			if (other.email != null)
				return false;
		} else if (!email.equals(other.email))
			return false;
		if (fechanacimiento == null) {
			if (other.fechanacimiento != null)
				return false;
		} else if (!fechanacimiento.equals(other.fechanacimiento))
			return false;
		if (idPasajero != other.idPasajero)
			return false;
		if (localidad == null) {
			if (other.localidad != null)
				return false;
		} else if (!localidad.equals(other.localidad))
			return false;
		if (nacionalidad == null) {
			if (other.nacionalidad != null)
				return false;
		} else if (!nacionalidad.equals(other.nacionalidad))
			return false;
		if (nombre == null) {
			if (other.nombre != null)
				return false;
		} else if (!nombre.equals(other.nombre))
			return false;
		if (nrodoc == null) {
			if (other.nrodoc != null)
				return false;
		} else if (!nrodoc.equals(other.nrodoc))
			return false;
		if (numcalle == null) {
			if (other.numcalle != null)
				return false;
		} else if (!numcalle.equals(other.numcalle))
			return false;
		if (ocupacion == null) {
			if (other.ocupacion != null)
				return false;
		} else if (!ocupacion.equals(other.ocupacion))
			return false;
		if (piso == null) {
			if (other.piso != null)
				return false;
		} else if (!piso.equals(other.piso))
			return false;
		if (situacioniva == null) {
			if (other.situacioniva != null)
				return false;
		} else if (!situacioniva.equals(other.situacioniva))
			return false;
		if (telefono == null) {
			if (other.telefono != null)
				return false;
		} else if (!telefono.equals(other.telefono))
			return false;
		if (tipodoc == null) {
			if (other.tipodoc != null)
				return false;
		} else if (!tipodoc.equals(other.tipodoc))
			return false;
		return true;
	}

}